Numerically controlled oscillators (NCOs) are common digital circuits, and are used in a wide range of timing applications. Such timing applications may include, for example, frequency synthesis, rate conversion and clock generation.
One prior art digital NCO comprises a digital accumulator with overflow. This type of NCO may generally be called a simple NCO, for example. In a simple NCO, a digital control word, C, is repeatedly added to a binary N-bit accumulator. The accumulator periodically overflows (i.e., whenever the accumulator reaches b 2N), and the overflow can be used, for example, to generate an output occurrence in a timing application. Assuming that the digital control word C is less than 2N, the average frequency of the accumulator overflow in a simple NCO is:   f  =            C              2        N              ·          (      accumulator_clock      )      
For example, if the (decimal) value 100 is added to an 8-bit accumulator at 1 MHz, the average NCO frequency will be (100×1 MHz/256)=390625 Hz.
One example of a simple NCO is the Harris Semiconductor HSP45102.
Oftentimes in timing applications, an NCO is required to have a rational frequency. Specifically, as mentioned above, a simple NCO overflows when the accumulator reach 2N. With some additional logic, a simple NCO accumulator can be modified so that it overflows at an arbitrary integer, B, for example. In this case, the NCO then has a rational frequency of C/B. Assuming that C is less than B, the average frequency of the NCO accumulator then becomes:   f  =            C      B        ·          (      accumulator_clock      )      
This type of prior art NCO may be called a rational NCO, for example.
NCO's are often required to provide a binary fractional output normalized to the range [0,1) for use in computations, or table look ups, for example. A simple NCO provides this normalized output—the accumulator value can be considered an N-bit fractional binary number in the range [0,1). Problems arise, however, when a normalized, rational NCO is desired.
Specifically, a rational NCO accumulator is not a simple binary counter. To convert the rational NCO accumulator to an N-bit binary fraction, the accumulator value must be multiplied by the value (2N/B). This normalization operation is problematic for several reasons. For example, multipliers are generally large and expensive digital circuits, particularly when required to run at high speed, as is often the case with NCOs. In addition, computing the value (2N/B) may require a division, and dividers are also generally large and expensive digital circuits. For at least these reasons, normalizing a rational NCO generally carries a high cost, in terms of both design space and in price.
In addition to normalization, NCOs sometimes require adjustments to a current frequency and/or phase. For example, such adjustments are needed if the NCO is used in a QPSK or FM transmitter. A simple NCO enables such adjustments. Since the simple NCO accumulator is a power-of-two, it is quite easy to make phase adjustments by 90 degrees, and since the accumulator value is normalized, adjustments to the control word have consistent effects on the output frequency. Again, however, problems arise when a rational NCO is desired, because such phase adjustments are rather difficult on a rational NCO. Phase adjustments of rational NCOs therefore also carry a high cost, again in terms of both design space and in price, due also to the multiplication required.
Prior art has attempted to avoid the multiplication required in these cases by building a simple NCO with very large accumulators and control words. For example, the Harris HSP 45102 mentioned above only has a 12-bit output, but the accumulator and control word are 32-bits. The extra 20-bits of precision allow the simple NCO to approximate rational values. For example, the 32-bit control word can approximate the rational value ⅓ to about 1 part per billion. Although the simple NCO approximation to ⅓ may be very accurate, it is not exact. In addition, such an NCO will drift over time. For some applications, this drift is not acceptable.
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with the present invention as set forth in the remainder of the present application with reference to the drawings.